Skip to content

Conversation

lcnr
Copy link
Contributor

@lcnr lcnr commented May 20, 2024

The search graph may have multiple roots, e.g. in

A :- B
B :- A, C
C :- D
D :- C

we first encounter the A -> B -> A cycle which causes A to be a root. We then later encounter the C -> D -> C cycle as a nested goal of B. This cycle is completely separate and C will get moved to the global cache. This previously caused us to use [B, D] as the cycle_participants for C and [] for A.

split off from #125167 as I would like to merge this change separately and will rebase that PR on top of this one. There is no test for this issue and I don't quite know how to write one. It is probably worth it to generalize the search graph to enable us to write unit tests for it.

r? @compiler-errors

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels May 20, 2024
@rustbot
Copy link
Collaborator

rustbot commented May 20, 2024

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented May 20, 2024

☔ The latest upstream changes (presumably #125324) made this pull request unmergeable. Please resolve the merge conflicts.

@compiler-errors
Copy link
Member

r=me after rebase

@lcnr
Copy link
Contributor Author

lcnr commented May 20, 2024

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented May 20, 2024

📌 Commit f99c9ff has been approved by lcnr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 20, 2024
@compiler-errors
Copy link
Member

@bors r=compiler-errors

@bors
Copy link
Collaborator

bors commented May 20, 2024

💡 This pull request was already approved, no need to approve it again.

@bors
Copy link
Collaborator

bors commented May 20, 2024

📌 Commit f99c9ff has been approved by compiler-errors

It is now in the queue for this repository.

bors added a commit to rust-lang-ci/rust that referenced this pull request May 21, 2024
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#124050 (Remove libc from MSVC targets)
 - rust-lang#124283 (Note for E0599 if shadowed bindings has the method.)
 - rust-lang#125123 (Fix `read_exact` and `read_buf_exact` for `&[u8]` and `io:Cursor`)
 - rust-lang#125158 (hir pretty: fix block indent)
 - rust-lang#125308 (track cycle participants per root)
 - rust-lang#125332 (Update books)
 - rust-lang#125333 (switch to the default implementation of `write_vectored`)
 - rust-lang#125346 (Remove some `Path::to_str` from `rustc_codegen_llvm`)

Failed merges:

 - rust-lang#125310 (Move ~100 tests from tests/ui to subdirs)

r? `@ghost`
`@rustbot` modify labels: rollup
@lcnr lcnr added T-types Relevant to the types team, which will review and decide on the PR/issue. and removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels May 21, 2024
@bors bors merged commit e97103f into rust-lang:master May 21, 2024
@rustbot rustbot added this to the 1.80.0 milestone May 21, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 21, 2024
Rollup merge of rust-lang#125308 - lcnr:search-graph-5, r=compiler-errors

track cycle participants per root

The search graph may have multiple roots, e.g. in
```
A :- B
B :- A, C
C :- D
D :- C
```
we first encounter the `A -> B -> A` cycle which causes `A` to be a root. We then later encounter the `C -> D -> C` cycle as a nested goal of `B`. This cycle is completely separate and `C` will get moved to the global cache. This previously caused us to use `[B, D]` as the `cycle_participants` for `C` and `[]` for `A`.

split off from rust-lang#125167 as I would like to merge this change separately and will rebase that PR on top of this one. There is no test for this issue and I don't quite know how to write one. It is probably worth it to generalize the search graph to enable us to write unit tests for it.

r? `@compiler-errors`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-types Relevant to the types team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants